/*
 * HashRegister.h
 *
 *  Created on: Oct 18, 2012
 *      Author: Federico Orquera
 *
 *  Clase que realiza los manejos en memoria de un registro de hash.
 *
 */

#ifndef HASHREGISTER_H_
#define HASHREGISTER_H_

#include <string>

typedef unsigned int RecordID;

class HashRecord
{
protected:
    static const std::string defaultAutorNombre;

    RecordID m_id;
    std::string m_autorApellido;
    std::string m_autorNombre;
    std::string m_frase;

public:

    HashRecord( RecordID id, const std::string &frase, const std::string &autor,
            const std::string &autorNombre = defaultAutorNombre );
    ~HashRecord();
    HashRecord& operator=(const HashRecord &hr);

    RecordID getId() const;
    const std::string& getAutorApellido() const;
    const std::string& getAutorNombre() const;
    const std::string& getFrase() const;

    void setAutor( const std::string& apellido,
            const std::string& nombre = defaultAutorNombre );
    void setFrase( const std::string& frase );

};

inline void HashRecord::setAutor( const std::string& apellido, const std::string& nombre )
{
    this->m_autorNombre = nombre;
    this->m_autorApellido = apellido;
}

inline void HashRecord::setFrase( const std::string& frase )
{
    this->m_frase = frase;
}

#endif /* HASHREGISTER_H_ */
